/*
 * Copyright 2019 The ZuSmart Project
 *  
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *  
 *      http://www.apache.org/licenses/LICENSE-2.0
 *  
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.zusmart.base.logging;

/**
 * @author Administrator
 *
 */
public interface Logger {

	public String getName();

	public boolean isEnabled(LoggerLevel level);

	public boolean isTraceEnabled();

	public boolean isDebugEnabled();

	public boolean isInfoEnabled();

	public boolean isWarnEnabled();

	public boolean isErrorEnabled();

	public void trace(String msg);

	public void trace(String msg, Object arg);

	public void trace(String msg, Object argA, Object argB);

	public void trace(String msg, Object... args);

	public void trace(String msg, Throwable cause);

	public void trace(Throwable cause);

	public void debug(String msg);

	public void debug(String msg, Object arg);

	public void debug(String msg, Object argA, Object argB);

	public void debug(String msg, Object... args);

	public void debug(String msg, Throwable cause);

	public void debug(Throwable cause);

	public void info(String msg);

	public void info(String msg, Object arg);

	public void info(String msg, Object argA, Object argB);

	public void info(String msg, Object... args);

	public void info(String msg, Throwable cause);

	public void info(Throwable cause);

	public void warn(String msg);

	public void warn(String msg, Object arg);

	public void warn(String msg, Object argA, Object argB);

	public void warn(String msg, Object... args);

	public void warn(String msg, Throwable cause);

	public void warn(Throwable cause);

	public void error(String msg);

	public void error(String msg, Object arg);

	public void error(String msg, Object argA, Object argB);

	public void error(String msg, Object... args);

	public void error(String msg, Throwable cause);

	public void error(Throwable cause);

	public void log(LoggerLevel level, String msg);

	public void log(LoggerLevel level, String msg, Object arg);

	public void log(LoggerLevel level, String msg, Object argA, Object argB);

	public void log(LoggerLevel level, String msg, Object... args);

	public void log(LoggerLevel level, String msg, Throwable cause);

	public void log(LoggerLevel level, Throwable cause);

}